package br.com.jk.email;

import br.com.jk.cliente.Cliente;
import br.com.jk.cliente.ClienteRn;
import br.com.jk.empresa.Empresa;
import br.com.jk.empresa.EmpresaRn;
import br.com.jk.fornecedor.Fornecedor;
import br.com.jk.fornecedor.FornecedorRn;
import br.com.jk.util.RNException;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author camilo
 */
public class EmailController {

  private EmailJDialog emailJD;

  public EmailController(EmailJDialog emailJD) {
    this.emailJD = emailJD;
  }

  public void salvar() {
    Email email = this.criaEmail();
    EmailRn eRn = new EmailRn();
    eRn.salvar(email);
    emailJD.dispose();
  }

  public void excluir(Email forn) {
    Email email = this.criaEmail();
    EmailRn ern = new EmailRn();
    ern.salvar(email);
  }

  public List<Email> listarPorIdEntidade() {
    Fornecedor forn;
    FornecedorRn frn = new FornecedorRn();
    forn = frn.carregar(emailJD.getIdEntidade());
    EmailRn ern = new EmailRn();
    List<Email> lstEmail = ern.listarPorFornecedor(forn);
    return lstEmail;
  }

  public Email criaEmail() {
    Email email = new Email();
    email.setEndEmail(emailJD.getJtfEmail().getText());
    email.setResidencial(emailJD.getJcbPessoal().isSelected());
    email.setNome(emailJD.getJtfNome().getText());
    email.setTipoEntidade(emailJD.getTipoEntidade());

    switch (emailJD.getTipoEntidade()) {
      case Email.EMAIL_FORNECEDOR:
        FornecedorRn frn = new FornecedorRn();
        Fornecedor forn = frn.carregar(emailJD.getIdEntidade());
        email.setFornecedor(forn);
        break;
      case Email.EMAIL_EMPRESA:
        EmpresaRn empresaRn = new EmpresaRn();
        Empresa empresa;
        try {
          empresa = empresaRn.carregar(emailJD.getIdEntidade());
          email.setEmpresa(empresa);
        } catch (RNException ex) {
          Logger.getLogger(EmailController.class.getName()).log(Level.SEVERE, null, ex);
        }
        break;
      case Email.EMAIL_CLIENTE:
        ClienteRn clienteRn = new ClienteRn();
        Cliente cliente = clienteRn.carregar(emailJD.getIdEntidade());
        email.setCliente(cliente);
        break;
    }

    return email;
  }

  void cancelar() {
    emailJD.dispose();
  }
}
